package com.ddshuai.easy;

import java.util.Arrays;

/**
 * 给定一个数组和一个值，在这个数组中原地移除指定值和返回移除后新的数组长度。
 * <p>
 * 不要为其他数组分配额外空间，你必须使用 O(1) 的额外内存原地修改这个输入数组。
 * <p>
 * 元素的顺序可以改变。超过返回的新的数组长度以外的数据无论是什么都没关系。
 * <p>
 * 给定 nums = [3,2,2,3]，val = 3，
 * <p>
 * 你的函数应该返回 长度 = 2，数组的前两个元素是 2。
 *
 * @author admin
 */
public class RemoveElement {
    /**
     * 递归实现吧
     * @param nums
     * @param num
     * @return
     */
    public static int removeElement(int[] nums,int num){
        int count = nums.length;
        for (int i = 0; i < count; i++) {
            if (nums[i] == num){
                //向前移动一位
                int temp = count;
                for (int i1 = i; i1 < temp; i1++) {
                    if (i1<nums.length-1){
                        nums[i1] = nums[i1+1];
                    }
                }
                count--;
                i = -1;
            }
        }
        System.out.println(Arrays.toString(nums));
        return count;
    }

    public static void main(String[] args) {
        System.out.println(removeElement(new int[]{3,2,2,3,2,5,4,7},2));
    }
}
